﻿using System;
using System.Collections.Generic;
using BussinessLogicTecnoPez;
using Microsoft.Practices.EnterpriseLibrary.Validation.Validators;

namespace BussinessLogicTecnoPez.Produccion.Enfermedades_y_control_de_estanques
{
    [Serializable]
    [DBTable("ENFERMEDADES")]
    public class Enfermedad: EntityBase<Enfermedad>
    {
        private int idEnfermedad;
        private string nombre;
        private string nombreCientifico;
        private string descripcion;

        [FriendlyName("Código", true)]
        [DBField("IDENFERMEDAD", true, true)]
        public int IdEnfermedad
        {
            get { return idEnfermedad; }
            set { idEnfermedad = value; }
        }

        [NotNullValidator(MessageTemplate = "Nombre: Debe tener algun valor.")]
        [StringLengthValidator(0, 200, MessageTemplate = "Nombre: Tamaño máximo es de 2000 carateres.")]
        [TecnoPezNoEmptyStringValidator("Nombre: Debe tener algun valor.")]
        [FriendlyName("Nombre", true)]
        [DBField("NOMBRE",false,false)] 
        public string Nombre
        {
            get { return nombre; }
            set { nombre = value; }
        }

        [NotNullValidator(MessageTemplate = "Nombre científico: Debe tener algun valor.")]
        [StringLengthValidator(0, 30, MessageTemplate = "Nombre científico: Tamaño máximo es de 30 carateres.")]
        [StringLengthValidator(1, 3000, MessageTemplate = "Nombre científico: Debe tener algun valor.")]
        [FriendlyName("Nombre Científico", true)]
        [DBField("NOMBRECIENTIFICO", false, false)]
        public string NombreCientifico
        {
            get { return nombreCientifico; }
            set { nombreCientifico = value; }
        }

        [NotNullValidator(MessageTemplate = "Descripción: Debe tener algun valor.")]
        [StringLengthValidator(0, 200 , MessageTemplate = "Descripción: Tamaño máximo es de 2000 carateres.")]
        [StringLengthValidator(1, 3000, MessageTemplate = "Descripción: Debe tener algun valor.")]
        [FriendlyName("Descripcion",false)]
        [DBField("DESCRIPCION",false,false)]
        public string Descripcion
        {
            get { return descripcion; }
            set { descripcion = value; }
        }

        public override string ToString()
        {
            return Nombre;
        }
    }

    [Serializable]
    [DBTable("CAUSASENFERMEDADES")]
    public class CausasEnfermedad:EntityBase<CausasEnfermedad>
    {
        private int idCausaEnfermedad;
        private string descripcion;
        private Enfermedad enfermedad;

        [FriendlyName("Código", false)]
        [DBField("IdCausaEnfermedad",true, true)]
        public int IdCausaEnfermedad
        {
            get { return idCausaEnfermedad; }
            set { idCausaEnfermedad = value; }
        }

        [FriendlyName("Enfermedad", false)]
        [DBField("idEnfermedad", false,false,true,"idEnfermedad")]
        public Enfermedad Enfermedad
        {
            get { return enfermedad; }
            set { enfermedad = value; }
        }

        [FriendlyName("Descripción", true)]
        [DBField("Descripcion", false,false)]
        public string Descripcion
        {
            get { return descripcion; }
            set { descripcion = value; }
        }
    }

    [Serializable]
    [DBTable("SINTOMASENFERMEDAD")]
    public class SintomasEnfermedad: EntityBase<SintomasEnfermedad>
    {
        private int idSintomaEnfermedad;
        private string descripcion;
        private Enfermedad enfermedad;

        [FriendlyName("Descripción", true)]
        [DBField("Descripcion", false, false)]
        public string Descripcion
        {
            get { return descripcion; }
            set { descripcion = value; }
        }

        [FriendlyName("Enfermedad", false)]
        [DBField("idEnfermedad", false, false, true, "idEnfermedad")]
        public Enfermedad Enfermedad
        {
            get { return enfermedad; }
            set { enfermedad = value; }
        }


        [FriendlyName("Código", false)]
        [DBField("IdSintomaEnfermedad", true, true)]
        public int IdSintomaEnfermedad
        {
            get { return idSintomaEnfermedad; }
            set { idSintomaEnfermedad = value; }
        }

    }
}